Mathematics
Learn Mathematical principles behind our physical world
Updated at 2021.4.27
Fast Fourier Transform
이 글을 수학으로 배우는 파동의 법칙 이라는 책을 읽고 정리하였다. 이전 글에서 유도한 푸리에 변환 공식은 다음과 같다.
위 식을 이용하여 실제 음성의 파동을 푸리에 변환하기 위해서는 적분을 무한대로 구간에서 해야 하는데, 현실에서는 그렇게 할 수 없다. 일정 시간 간격으로 유한개의 파동값을 읽어서 사용할 수 밖에 없다.
불연속 푸리에 변환
그 일정 시간 간격을 라고 하고, 읽어낸 값의 개수를 이라고 하면, 위의 적분식은 주파수 일때, 위의 수식은 아래와 같이 쓸 수 있다.
위 식을 불연속 푸리에 변환이라고 한다. 위의 식의 문제점은 관찰 구간내에서 최대 회 진동하는 파동까지만 계산할 수 있다. (참고로, 번 진동하는 파동은 최소 개의 값을 읽어야 식별 가능 하기 때문임)
예를 들어 0.3초짜리 4000Hz의 음성에서 푸리에 계수 1개를 뽑아내기 위해서는 2400회의 계산이 필요하고
푸리에 계수를 1Hz부터 4000Hz까지 4000개를 계산하려면, 회의 지수함수 및 곱셈 계산이 필요하다.
계산 횟수 줄이기
설명의 편의를 위해 위의 식에서 라고 하면,
여기서,
추가로, 라고 하면,
는 회전 연산자라고 할 수 있는데, 일 때는 이 임의의 정수이고, 에 대해서 아래와 같음을 알 수 있다.
따라서
추가로 정리하면,
여기서 , 이다. 위 식의 장점은 를 계산하고자 할 때 을 계산할 때 사용한 값을 그대로 사용할 수 있다는 것이다.
즉 64번의 계산량이 짝수일 때 16번, 홀수 일때 16번 + 4번( 을 곱하는 회수)로 총 34번으로 줄어든다.
유사한 절차를 한번 더 진행하면,
여기서 , , , , 이다.
계산회수는 16번에, 곱하기 회수 4번, 곱하기 회수 4번으로 총 24회로 줄어든다.
위와 같은 알고리즘을 활용하여, 일때는 으로 2번의 절차를 통해 회수를 줄였는데, 일반적으로 개의 점을 취하면, 9번의 절차를 통해 계산 회수를 획기적으로 줄일 수 있다.
이 알고리즘을 FFT (Fast Fourier Transform)
이라고 한다.
총 21 개의 글이 있습니다.
# | 제목 | 날짜 | 조회수 |
---|---|---|---|
01 | 이항분포와 정규분포 | 2021/04/28 | 198 |
02 | 푸리에 급수 | 2021/04/28 | 442 |
03 | 해석적 확장과 감마 함수 | 2021/05/25 | 162 |
04 | 푸리에 변환 | 2021/05/25 | 386 |
05 | 수학적 증명 방법 | 2021/05/25 | 187 |
06 | 원주율 구하기 | 2021/04/22 | 195 |
07 | 자연상수의 무리수 증명 | 2021/05/25 | 165 |
08 | 스털링 근사 | 2021/05/25 | 229 |
09 | 선형변환 | 2021/04/29 | 196 |
10 | 자연상수와 지수함수 | 2021/04/22 | 192 |
11 | 동전 던지기와 확률 이야기 | 2021/04/28 | 185 |
12 | 수학 분야 | 2021/04/28 | 209 |
13 | 지수함수의 확장 | 2021/04/28 | 175 |
14 | 제타함수 | 2021/05/25 | 220 |
15 | 꼭 알아야 할 수학 기호 | 2021/04/28 | 166 |
16 | 정사영과 직교 | 2021/04/29 | 186 |
17 | 소수의 개수 | 2021/05/25 | 238 |
18 | 수의 기하학적 의미 | 2021/04/28 | 172 |
19 | 허수 | 2021/04/22 | 191 |
20 | 테일러 급수 | 2021/05/25 | 205 |
21 | Fast Fourier Transform | 2021/04/28 | 211 |